﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo3
{
    /// <summary>
    /// 定义一个类来描述：人
    /// </summary>
    public class Person
    {
        //以下成员应该不允许外界访问的
        private string name="";
        private int age=0;   // 成员变量也可以赋予初始值
        private bool sex=true;
        public string nickName="";

        // 构造方法：创建实例时自动执行的方法
        // 方法名与类名相同
        // 构造方法可定义多个，不能重复，不能一模一样
        public Person()
        {
        }
        // 一个参数的构造函数
        public Person(string name)
        {
            this.name = name;
        }
        // 在一个类的定义中定义了多个构造方法，可以用this来调用其它的构造方法
        //:this(name) 表示调用一个参数的构造方法
        public Person(string name, int age):this(name)
        {
            this.age = age;
        }
        //  : this(name, age)表示调用二个参数的构造方法
        public Person(string name, int age, bool sex) : this(name, age)
        {
            this.sex = sex;
        }
        public Person(string name, int age, bool sex, string nickName ) : this(name, age,sex)
        {
            this.nickName = nickName;
        }
        public void Speak(string str)
        {
            if(string.IsNullOrEmpty(nickName))
                Console.WriteLine($"您好，我是{this.name},我是{(this.sex?"男生":"女生")}，我今年{this.age}岁,{str}");
            else
                Console.WriteLine($"您好，我是{this.name},昵称{this.nickName},我是{(this.sex ? "男生" : "女生")}，我今年{this.age}岁,{str}");
        }
    }
}
